package com.service;

import com.pojo.Employee;
import com.pojo.OutApply;
import com.pojo.view.EmpAndOutApply;
import com.pojo.view.EmpAndOutApply;
import com.pojo.OutApply;

import java.util.List;

public interface OutApplyService {
    /**
     * 将一条outApply记录添加至数据库表tb_outapply
     * @param outApply
     */
    void addToOutApply(OutApply outApply);

    /**
     * 将员工对应的outApply记录添加数据库表tb_emp_outapply
     * @param empAndOutApply
     */
    void addToEmpOutApply(EmpAndOutApply empAndOutApply);

    /**
     * 根据applytime查找id
     * @param applyTime
     * @return
     */
    int getOutApplyIdByApplyTime(String applyTime);

    /**
     * 查找status为“正在审核”的outapply集合
     * @return
     */
    List<OutApply> getOutApplyChecks();

    /**
     * 根据outapply_id查找对应的员工
     * @return
     */
    Employee getEmployeeByOutApplyId(int outApplyId);

    /**
     * 根据outapply_id修改相应申请的status为“已通过”
     * @param outapply_id
     */
    void updateStatusToApprovedById(int outapply_id);

    /**
     * 根据outapply_id查找对应的外出申请
     * @param outApplyId
     * @return
     */
    OutApply getOutApplyByOutApplyId(int outApplyId);

    /**
     * 根据username查找对应的外出申请Id
     * @param username
     * @return
     */
    List<Integer> getOutApplyIdListByUsername(String username);

    /**
     * 查找"正在审核"的申请数目
     * @return
     */
    Integer getWaitToCheckOfAll();

    /**
     * 根据outapply_id修改相应申请的status为“已通过”
     * @param outApplyId
     */
    void updateStatusToRefusedById(int outApplyId);
}
